package com.icedevcloud.upms.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.icedevcloud.upms.controller.admin.permission.dto.AddPermissionReqDto;
import com.icedevcloud.upms.controller.admin.permission.dto.PermissionQueryReqDto;
import com.icedevcloud.upms.controller.admin.permission.dto.RouterResDto;
import com.icedevcloud.upms.controller.admin.permission.dto.UpdatePermissionReqDto;
import com.icedevcloud.upms.entity.SysPermission;

import java.util.List;

/**
 * <p>
 * 权限表 服务类
 * </p>
 *
 * @author XiaoBingBy
 * @since 2023-08-13
 */
public interface ISysPermissionService extends IService<SysPermission> {

    /**
     * 获取路由
     *
     * @return
     */
    List<RouterResDto> getRouters();

    /**
     * 根据用户id 获取权限编码
     *
     * @return
     */
    List<String> getUserPermCodeByUserId(Long userId);

    /**
     * 权限列表接口
     *
     * @param reqDto
     * @return
     */
    List<SysPermission> permissionList(PermissionQueryReqDto reqDto);

    /**
     * 添加权限接口
     *
     * @param reqDto
     * @return
     */
    Boolean add(AddPermissionReqDto reqDto);

    /**
     * 更新权限接口
     *
     * @param reqDto
     * @return
     */
    Boolean update(UpdatePermissionReqDto reqDto);

    /**
     * 删除权限接口
     *
     * @param id
     * @return
     */
    Boolean delete(Long id);

}
